Линейная алгебра
Российский университет дружбы народов имени Патриса Лумумбы, Москва, Россия
2025-10-25
Цель работы
Основной целью работы является изучение возможностей специализированных пакетов Julia для выполнения и оценки эффективности операций над объектами линейной алгебры.
Задание
Julia позволяет вычислять LU-факторизацию и определяет составной тип факторизации для его хранения:
Исходная система уравнений Ax = b может быть решена или с использованием исходной матрицы, или с использованием объекта факторизации:
Julia позволяет вычислять QR-факторизацию и определяет составной тип факторизации для его хранения:
Далее рассмотрим примеры работы с матрицами большой размерности и специальной структуры:
Пример добавления шума в симметричную матрицу (матрица уже не будет симметричной):
В Julia можно объявить структуру матрица явно, например, используя Diagonal, Triangular, Symmetric, Hermitian, Tridiagonal и SymTridiagonal:
Далее для оценки эффективности выполнения операций над матрицами большой размерности и специальной структуры воспользуемся пакетом BenchmarkTools:
Далее рассмотрим примеры работы с разряженными матрицами большой размерности. Использование типов Tridiagonal и SymTridiagonal для хранения трёхдиагональных матриц позволяет работать с потенциально очень большими трёхдиагональными матрицами:
В примере показано, как можно решить систему линейных уравнений с рациональными элементами без преобразования в типы элементов с плавающей запятой (для избежания проблемы с переполнением используем BigInt):
В результате выполнения данной лабораторной работы я изучил возможности специализированных пакетов Julia для выполнения и оценки эффективности операций над объектами линейной алгебры.